Skip to content

Version 1.6.0 - Major Feature Release#146

Closed
MrAlders0n wants to merge 95 commits intomainfrom
dev
Closed

Version 1.6.0 - Major Feature Release#146
MrAlders0n wants to merge 95 commits intomainfrom
dev

Conversation

@MrAlders0n
Copy link
Collaborator

This release introduces significant improvements to the MeshCore GOME WarDriver app, including passive RX listening, an API batch queue system, enhanced logging capabilities, and comprehensive code optimization.


✨ New Features

Passive RX Listening & RX Log

  • Unified RX Handler: All incoming packets are now processed through a single handler that delegates to either Session Log tracking (for ping echoes) or Passive RX logging
  • RX Log UI: New expandable log section showing passive observations (repeater ID, SNR, RSSI, path length, GPS coordinates)
  • Batch Aggregation: RX events are batched per-repeater with distance (25m) and timeout (30s) triggers for efficient API posting
  • Last Hop Extraction: Passive RX captures the last hop (direct repeater) from packet paths for coverage mapping

API Batch Queue System

  • Unified Batch Queue: TX and RX messages are now queued and posted in batches (up to 50 messages per request)
  • Smart Flush Triggers: Queue flushes on TX ping (3s delay), periodic timer (30s), queue size limit (50), or disconnect
  • Background API Posting: API posts now run asynchronously, allowing the UI to remain responsive
  • TX Flush Timer: Ensures near-real-time map updates for ping locations

Error Log

  • New Error Log UI: Collapsible section displaying all debugError() messages with timestamp and source
  • Auto-Population: All debug errors automatically appear in the Error Log for user visibility
  • Max 50 entries: Prevents memory issues with oldest entries removed when limit reached

CSV Export & Copy Buttons

  • Session Log CSV: Export ping data with timestamp, coordinates, and repeater information
  • RX Log CSV: Export passive observations including RSSI and path length
  • Error Log CSV: Export error history with timestamps and source context
  • One-Click Copy: Copy buttons appear when each log section is expanded

🔧 Improvements

Ping/Repeat Listener Flow Optimization

  • Non-Blocking API Posts: Next ping timer starts immediately after RX window (don't wait for API)
  • Increased RX Window: Extended from 7s to 6s for the Session Log listening window
  • Background API Posting: postApiInBackground() runs silently, only showing errors if they occur

Capacity Check API Enhancement

  • Reason Code Support: API can now return specific denial reasons (e.g., "outofdate")
  • Extensible Messages: REASON_MESSAGES mapping allows easy addition of new reason codes
  • Version Reporting: App version now sent to capacity check API

Status Messages Update

  • Shortened error messages for better mobile display:
    • "MeshMapper at capacity" (was "WarDriving app has reached capacity")
    • "MeshMapper unavailable" (was "WarDriving app is down")
    • "MeshMapper slot revoked" (was "WarDriving slot has been revoked")
    • "Session error - reconnect" (was "Session ID error; try reconnecting")

Debug Logging Enhancement

  • Standardized Tags: All debug messages now use consistent tags ([BLE], [GPS], [PING], [API QUEUE], etc.)
  • Documented Convention: Added tag requirements to DEVELOPMENT_REQUIREMENTS. md

🧹 Code Cleanup

  • Removed deprecated functions: handlePassiveRxLogEvent(), startPassiveRxListening(), stopPassiveRxListening()
  • Deleted unused file: index-new.html (237 lines)
  • Fixed syntax error at line 4113 (missing comma in debugError call)
  • Extracted magic number to named constant (previewLength: 20 in errorLogState)
  • Removed distanceUpdateTimer and related functions (distance updates now on GPS position changes)
  • Updated tailwind. config.js to remove deleted file reference

📚 Documentation

  • CHANGES_SUMMARY.md: Comprehensive summary of all optimization changes
  • OPTIMIZATION_REPORT.md: Detailed analysis of codebase with risk/benefit assessment
  • COVERAGE_TYPES.md: Definitions for coverage block types (BIDIR, TX, RX, DEAD, DROP)

MrAlders0n and others added 30 commits December 21, 2025 20:13
- Added rxLogState object and passiveRxTracking state variables
- Created handlePassiveRxLogEvent() to parse all incoming packets
- Implemented startPassiveRxListening() and stopPassiveRxListening()
- Integrated passive listening into connected/disconnected handlers
- Added RX Log UI section in index.html
- Implemented all RX Log UI helper functions
- Added future API integration placeholder
- Added comprehensive debug logging throughout

Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
- Added step 9 for passive RX listening in connection workflow
- Updated high-level connection steps to include passive listening
- Added passive RX stop in disconnection cleanup
- Added comprehensive "Passive RX Log Listening" section
- Documented key differences between active ping tracking and passive RX
- Explained first hop vs last hop path interpretation
- Documented UI components and future API integration
- Updated summary with new design principle

Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
…ndards

Add passive RX log listening for continuous repeater coverage monitoring
…ll RX messages

Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
…ash filter removal

Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
…ash-validation

Disable channel hash filter in passive RX log to track all messages
Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
…er-function

Remove redundant interval-based distance updater
… double decryption

Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
…gle handler

Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
…stener

Refactor RX Log architecture: Unified handler eliminates Session Log duplicates
… window

- Changed RX_LOG_LISTEN_WINDOW_MS from 7000ms to 10000ms (10 seconds)
- Created new postApiInBackground() function for non-blocking API posts
- Refactored sendPing() flow: timer starts immediately after RX window (doesn't wait for API)
- Unlocked ping controls immediately after RX window completion
- Moved status updates and next ping scheduling before API post
- API success messages now suppressed from UI
- API error messages shown only when background POST fails
- 3-second delay and POST now run asynchronously
- Updated debug logging to reflect new timing

Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
- Updated STATUS_MESSAGES.md: Changed RX window duration from 7s to 10s
- Deprecated "Posting to API" status message (now suppressed from UI)
- Added new "Error: API post failed" status message documentation
- Updated em dash timing (appears after RX window, not after API post)
- Updated slot revocation flow to reflect background API posting
- Added comprehensive "Ping/Repeat Listener Flow" section to CONNECTION_WORKFLOW.md
- Documented old vs new flow comparison with benefits and timing analysis
- Updated all references to reflect asynchronous API posting behavior

Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
…ndards-again

Refactor ping/repeat flow: 10s RX window + async API posting
Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
MrAlders0n and others added 29 commits December 22, 2025 22:04
Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
…delines

Add SNR chip to Session Log summary and CSV export for all log sections
Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
…delines-again

Move SNR chip from Session Log to RX Log and update CSV export formats
- Added REASON_MESSAGES constant mapping for extensible reason handling
- Updated checkCapacity() to parse and store reason codes from API
- Modified disconnect event handler to check REASON_MESSAGES first
- Added fallback for unknown reason codes with generic message
- Updated documentation in STATUS_MESSAGES.md and CONNECTION_WORKFLOW.md
- Added debug logging for reason code processing

Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
…delines-another-one

Add extensible reason code handling for capacity check API responses
Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
…delines-yet-again

Optimize wardrive.js: Remove dead code, fix syntax error
Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
…delines-one-more-time

Refactor: Consolidate duplicate log handling functions into reusable helpers
…logging-guidelines-one-more-time

Revert "Refactor: Consolidate duplicate log handling functions into reusable helpers"
- Change debugWarn to debugError for all error conditions
- Rename error messages for consistency and brevity
- Update all "WarDriving" references to "MeshMapper"
- Improve error message clarity and conciseness
- Update documentation (STATUS_MESSAGES.md, CONNECTION_WORKFLOW.md)

Co-authored-by: MrAlders0n <55921894+MrAlders0n@users.noreply.github.com>
…ndards

Fix error logging and standardize error messages
@MrAlders0n MrAlders0n closed this Dec 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants